
/**
 *@file
 * Header file contenente l'interfaccia del modulo gestione_record
 */

#define top_ten 10 /**<numero massimo di elementi da tenere in lista*/

/**
 * Inserisce nome e punteggio effettuato in partita in una lista ordinata.
 * La funzione scorre la lista finche non trova un punteggio inferiore a quello
 * ottenuto nell'ultima partita o finché non arriva in fondo, se non è in fondo
 * alla lista scala di una posizione verso destra, e a partire dall'ultima
 * posizione tutti gli elementi successivi. La variabile i conterrà la posizione
 * in cui inserire l'elemento
 *
 *@param[in] lista oggetto di tipo ::l_record contenente nomi e punteggi
 *@param[in] miei_punti contiene il punteggio effettuato nell'ultima partita
 *@param[in] mionome stringa contenente il nome del giocatore
 */  

void inserisci_in_ordine(l_record &lista, int miei_punti, const char *mionome);

/**
 * Carica in memoria la lista contenente i punteggi o li stampa se  invocata da menu.
 * Apre uno stream file in input e carica il numero di elementi. Se la funzione è invocata
 * dal menu(in modalità lettura) vengono stampati gli elementi a video altrimenti
 * se invocata a fine partita(in modalità scrittura) viene allocata memoria per
 * gli elementi gia presenti +1 in modo da poter inserire mediante ::inserisci_in_ordine
 * l'elemento in ordine in base al punteggio.
 *
 * @param[in] lista lista contenente gli elementi con punteggi e nomi
 * @param[in] da_menu indica se la funzione è stata chiamata dal menu o a fine partita
 * @return False in caso la lista non contenga elementi
 */

bool carica_lista(l_record & lista, bool da_menu);




